package org.domain.sigepac.session;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.domain.sigepac.Utils;
import org.domain.sigepac.Entity.Frequencia;
import org.domain.sigepac.Entity.FrequenciaVoluntario;
import org.domain.sigepac.Entity.Turma;
import org.domain.sigepac.repository.RepositorioFrequencia;
import org.domain.sigepac.repository.RepositorioFrequenciaVoluntario;
import org.domain.sigepac.repository.RepositorioTurma;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.End;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.international.StatusMessages;

@Name("frequenciaHome")
@Scope(ScopeType.CONVERSATION)
public class FrequenciaHome {


	@In
	private StatusMessages statusMessages;

	@In
	private RepositorioTurma repositorioTurma;

	@In
	private RepositorioFrequencia repositorioFrequencia;

	@In
	private RepositorioFrequenciaVoluntario repositorioFrequenciaVoluntario;

	private Turma turma;

	private Date data=new Date();

	@DataModel
	private List<Frequencia> frequenciaAlunos;

	@DataModel
	private List<FrequenciaVoluntario> frequenciaVoluntarios;


	@Factory("frequenciaAlunos")
	public void listarAlunos(){

		frequenciaAlunos=new ArrayList<Frequencia>();
		frequenciaAlunos=getTurma().getFrequencias(getData());
		listarFrequenciasVoluntarios();
	}

	@Factory("frequenciaVoluntarios")
	public void listarFrequenciasVoluntarios(){
		frequenciaVoluntarios=new ArrayList<FrequenciaVoluntario>();
		frequenciaVoluntarios=getTurma().getFrequenciasVoluntarios(getData());
	}

	public FrequenciaHome() {

	}


	@End
	public void salvar(){

		for (Frequencia frequencia : frequenciaAlunos) {
			frequencia.setData(getData());

			repositorioFrequencia.inserir(frequencia);

		}

		for(FrequenciaVoluntario frequenciaVoluntario: frequenciaVoluntarios){
			repositorioFrequenciaVoluntario.inserir(frequenciaVoluntario);
		}

		Utils.entityManagerFlush();

	}



	public Integer getIdTurma() {
		return (Integer) getTurma().getId();
	}

	public void setIdTurma(Integer idTurma) {
		setTurma(repositorioTurma.obterPorId(idTurma));
	}

	public Turma getTurma() {
		return turma;
	}
	public void setTurma(Turma turma) {
		this.turma = turma;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}


}
